package com.enjoyor.soa.traffic.api.service.dubbo.vcsp;

import java.util.List;

import com.enjoyor.soa.traffic.api.dto.vcsp.ProcessInfoDto;
import com.enjoyor.soa.traffic.util.pojo.Page;
import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

/**
 * 
 * @ClassName: DubboProxyMonitorService
 * @Description: 车管所文件转存-中心服务-代理服务器监测
 * @author: ly
 * @date: 2019年2月21日 上午11:45:15
 */
public interface DubboProxyMonitorService {
	/**
	 * 
	 * @Title: getSystemInfo
	 * @Description: 获取代理服务器系统信息
	 * @param proxy_id 代理编号
	 * @return
	 * @return: ResultPojo
	 */
	public ResultPojo getProxySystemInfo(String systemKey, String token, String proxy_id);
	
	/**
	 * 
	 * @Title: getProxySystemHis
	 * @Description: 获取资源使用历史
	 * @param systemKey
	 * @param token
	 * @param proxy_id 代理编号
	 * @param proxy_name 代理名称
	 * @param proxy_ip 代理ip
	 * @param start_time 查询开始时间
	 * @param end_time 查询结束时间
	 * @return
	 * @return: ResultPojo
	 */
	public ResultPojo getProxySystemHis(String systemKey, String token, String proxy_id,String proxy_name, String proxy_ip,
			String start_time, String end_time);

	/**
	 * 
	 * @Title: getProxySystemHis
	 * @Description: 获取资源使用历史分页
	 * @param systemKey
	 * @param token
	 * @param proxy_id 代理编号
	 * @param proxy_name 代理名称
	 * @param proxy_ip 代理ip
	 * @param start_time 查询开始时间
	 * @param end_time 查询结束时间
	 * @return
	 * @return: ResultPojo
	 */
	public ResultPojo getProxySystemHisPage(String systemKey, String token, String proxy_id,String proxy_name, String proxy_ip,
			String start_time, String end_time,Page page);

	/**
	 * 
	 * @Title: getProxyFileSizeHis
	 * @Description: 获取文件上传量记录
	 * @param systemKey
	 * @param token
	 * @param proxy_id 代理编号
	 * @param proxy_name 代理名称
	 * @param proxy_ip 代理ip
	 * @param search_time 查询时间
	 * @return
	 * @return: ResultPojo
	 */
	public ResultPojo getProxyFileSizeHis(String systemKey, String token, String proxy_id,String proxy_name, String proxy_ip,
			String search_time);

	/**
	 * 昨日资源占用的趋势分析
	 * @param systemKey
	 * @param token
	 * @param proxy_id 代理编号
	 * @param start_time 开始时间
	 * @param end_time 结束时间
     * @return
     */
	public ResultPojo getProxyInfoHis(String systemKey, String token, String proxy_id, String start_time, String end_time);

	/**
	 * 
	 * @Title: getProxyFileSizeHisPage
	 * @Description: 获取文件上传量记录分页
	 * @param systemKey
	 * @param token
	 * @param proxy_id 代理编号
	 * @param proxy_name 代理名称
	 * @param proxy_ip 代理ip
	 * @param search_time 查询时间
	 * @return
	 * @return: ResultPojo
	 */
	public ResultPojo getProxyFileSizeHisPage(String systemKey, String token, String proxy_id,String proxy_name, String proxy_ip,
			String search_time, Page page);
	
	/**
	 * 
	 * @Title: updateSystemInfo
	 * @Description: 更新系统信息
	 * @param proxy_id 代理编号
	 * @param proxy_name 代理名称
	 * @param proxy_ip 代理ip
	 * @param cpu cpu使用率
	 * @param memory 内存使用率
	 * @param net_receive 网络接收量
	 * @param net_send 网络发送量
	 * @param disk 磁盘使用率
	 * @param file_total_count 文件数
	 * @param file_total_size 文件总大小
	 * @param upload_count 上传量
	 * @param upload_size 上传大小
	 * @return
	 * @return: ResultPojo
	 */
	public ResultPojo updateProxySystemInfo(String systemKey, String token, String proxy_id,String proxy_name, String proxy_ip,
			float cpu, float memory, float net_receive, float net_send, float disk,
			long file_total_count, long file_total_size, long upload_count, long upload_size,
			long this_time_count, long this_time_size);
	
	
	/**
	 * 
	 * @Title: heartBeat
	 * @Description: 心跳
	 * @param systemKey
	 * @param token
	 * @param proxy_key
	 * @return
	 * @return: ResultPojo
	 */
	public boolean heartBeat(String systemKey, String token, String proxy_id);
	
	/**
	 * 
	 * @Title: updateProxyProcessList
	 * @Description: 更新代理服务的进程列表
	 * @param systemKey
	 * @param token
	 * @param proxy_id
	 * @param dtoList
	 * @return
	 * @return: ResultPojo
	 */
	public ResultPojo updateProxyProcessList(String systemKey, String token, String proxy_id,
			List<ProcessInfoDto> dtoList);
	
	/**
	 * 
	 * @Title: getProxyProcessList
	 * @Description: 根据代理编号获取进程列表
	 * @param systemKey
	 * @param token
	 * @param proxy_id
	 * @return
	 * @return: ResultPojo
	 */
	public ResultPojo getProxyProcessList(String systemKey, String token, String proxy_id);
}
